runtime.g.preempt (field)
18 uses
runtime (current package)
lock_futex.go#L139: if gp.m.locks == 0 && gp.preempt { // restore the preemption request in case we've cleared it in newstack
malloc.go#L1369: if getg().preempt {
mgc.go#L1490: if gp.preempt {
mgcmark.go#L563: if gp.preempt {
mgcmark.go#L1183: for !(gp.preempt && (preemptible || sched.gcwaiting.Load() || pp.runSafePointFn != 0)) {
mgcmark.go#L1205: for !(gp.preempt && (preemptible || sched.gcwaiting.Load() || pp.runSafePointFn != 0)) {
mgcmark.go#L1289: for !gp.preempt && !gcCPULimiter.limiting() && workFlushed+gcw.heapScanWork < scanWork {
mgcwork.go#L477: for i := 0; i < batchSize && !(preemptible && gp.preempt); i++ {
preempt.go#L175: gp.preempt = false
preempt.go#L195: if gp.preemptStop && gp.preempt && gp.stackguard0 == stackPreempt && asyncM == gp.m && asyncM.preemptGen.Load() == asyncGen {
preempt.go#L206: gp.preempt = true
preempt.go#L344: return (gp.preempt || gp.m.p != 0 && gp.m.p.ptr().preempt) && readgstatus(gp)&^_Gscan == _Grunning
proc.go#L373: if !gp.preempt && sched.npidle.Load() > 0 {
proc.go#L3225: gp.preempt = false
proc.go#L4670: if gp.preempt {
proc.go#L6315: gp.preempt = true
runtime1.go#L613: if mp.locks == 0 && gp.preempt {
runtime2.go#L463: preempt bool // preemption signal, duplicates stackguard0 = stackpreempt
![]() |
The pages are generated with Golds v0.7.6. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |